Systems and methods for processing limb motion

ABSTRACT

Control systems and methods are disclosed for processing a time series of signals associated with the movement of a device associated with a limb. The time series of motion signals is filtered, such as thorough an autoregressive filter, and compared to stored data sets representing a limb-motion event and/or phase. In certain examples, a plurality of accelerometers generate the time series of motion signals based at least on acceleration measurements in three orthogonal directions and/or planes. The acceleration measurements may relate to the movement of an artificial limb, such as a prosthetic or orthotic device. Upon determining an event and/or phase of limb motion, the control system may trigger an actuator to appropriately adjust one or more prosthetic or orthotic joints.

RELATED APPLICATION

This application claims the benefit of priority under 35 U.S.C. §119(e)of U.S. Provisional Application Ser. No. 60/638,802, filed on Dec. 22,2004, and entitled “SYSTEMS AND METHODS FOR GAIT DETECTION,” theentirety of which is hereby incorporated herein by reference to beconsidered a part of this specification.

BACKGROUND OF THE INVENTION

1. Field of the Invention

Embodiments of the invention described herein relate generally tolimb-motion detection and, in particular, limb-motion detection using aplurality of sensor signals.

2. Description of the Related Art

Millions of individuals worldwide rely on prosthetic and/or orthoticdevices to compensate for disabilities, such as amputation ordebilitation, and to assist in the rehabilitation of injured limbs.Orthotic devices include external apparatuses used to support, align,prevent, protect, correct deformities of, or improve the function ofmovable parts of the body. Prosthetic devices include apparatuses usedas artificial substitutes for a missing body part, such as an arm orleg.

Conventional orthoses are often used to support a joint, such as anankle or a knee, of an individual, and movement of the orthosis isgenerally based solely on the energy expenditure of the user. Someconventional prostheses are equipped with basic controllers thatartificially mobilize the joints without any interaction from theamputee and are capable of generating only basic motions. Such basiccontrollers do not take into consideration the dynamic conditions of theworking environment. The passive nature of these conventional prostheticand orthotic devices typically leads to movement instability, highenergy expenditure on the part of the disabled person or amputee, gaitdeviations and other short- and long-term negative effects. This isespecially true for leg orthoses and prostheses.

To address these drawbacks, some prosthetic devices include one or moresystems for monitoring the movement of a user. For instance, certainprosthetic knee devices include one or more pressure sensors implantedin an insole for detecting changes in force during user movement. Inresponse to these detected changes in force, a control unit mechanicallyadjusts the prosthetic knee. Such measurements, however, are generallyusable only for analysis of the past gait of the user. Furthermore,because the pressure sensors are generally used to detect contactbetween the foot and the ground, the pressure sensors are not able toproduce usable signals during a swing stage of the foot. In addition,the insole containing the pressure sensors often requires preciseplacement and alignment in relation to the limb being monitored.

SUMMARY OF THE INVENTION

Accordingly, a need exists for improved systems and methods fordetecting and analyzing movement of a device associated with a limb. Inparticular, a need exists for systems and methods for accuratelydetecting and/or predicting motion-related events and phases, such as byprocessing a discrete and/or continuous signal representing a stride ofa user during a stance stage and a swing stage. What are also needed aresystems for controlling the movement of a device associated with a limbbased on the monitored motion of the device.

In certain embodiments, a system is disclosed for analyzing the movementof a device associated with a limb. The system comprises at least oneaccelerometer configured to generate a time series of motion signalsindicative of a movement of a device associated with a limb. The systemfurther comprises a process module in communication with the at leastone accelerometer, the process module comprising a filter and acomparison module. The filter is configured to process the time seriesof motion signals received from the at least one accelerometer andconfigured to generate a plurality of filtered signals. The comparisonmodule is configured to compare the plurality of filtered signals with aplurality of sample signals, wherein the comparison module is furtherconfigured to identify limb-motion events associated with the movementof the device associated with the limb. In certain further embodiments,the system is incorporated into an actuatable prosthetic or orthoticdevice being movable about a joint, such as, for example, an anklejoint.

In certain embodiments, a method is disclosed for processing signalsassociated with the movement of a device associated with a limb. Themethod comprises receiving a time series of motion signals indicative ofmovement of a device associated with a limb and filtering selected onesof the time series of motion signals. The method further includesprocessing the filtered signals to identify at least one limb-motioncategory.

In certain embodiments, a method is disclosed for processing signalsassociated with the movement of a device associated with a limb. Themethod includes receiving a plurality of sensor signals indicative of amotion of a device associated with a limb. The method further includesprocessing the plurality of sensor signals with a time series analysisand comparing the processed sensor signals to a plurality of motionpatterns so as to associate the processed sensor signals with aparticular motion pattern.

In certain embodiments, a system is disclosed for processing signalsassociated with the movement of a device associated with a limb. Thesystem includes means for receiving a time series of motion signalsindicative of movement of a device associated with a limb. The systemfurther includes means for filtering selected ones of the time series ofmotion signals and means for processing the filtered signals to identifyat least one limb-motion category.

In certain embodiments of the invention, a system is disclosed forprocessing signals associated with the movement of a prosthetic ankledevice. The system includes means for receiving a plurality of sensorsignals indicative of a motion of a device associated with a limb. Thesystem further includes means for processing the plurality of sensorsignals with a time series analysis and means for comparing theprocessed sensor signals to a plurality of motion patterns so as toassociate the processed sensor signals with a particular motion pattern.

Another embodiment of the invention includes a machine loadable softwareprogram for a processor for controlling the movement of a deviceassociated with a limb. The software program includes an input module, afilter module, a comparison module, and a control module. The inputmodule is configured to receive a time series of motion signals. Thefilter module is configured to process the time series of motion signalsand is configured to generate a plurality of filtered signals. Thecomparison module is configured to compare the plurality of filteredsignals with a plurality of sample signals and configured to generate agait event selection signal indicative of the movement of a deviceassociated with a limb. The control module is configured to generate acontrol signal based at least in part on the gait event selectionsignal, wherein the control signal is capable of causing the movement ofthe device associated with the limb. The software module may include,for example, an autoregressive (AR) filter and/or a Kalman filter. Thetime series of motion signals may be indicative of acceleration in atleast one direction of the device associated with the limb.

For purposes of summarizing the invention, certain aspects, advantagesand novel features of the invention have been described herein. It is tobe understood that not necessarily all such advantages may be achievedin accordance with any particular embodiment of the invention. Thus, theinvention may be embodied or carried out in a manner that achieves oroptimizes one advantage or group of advantages as taught herein withoutnecessarily achieving other advantages as may be taught or suggestedherein.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram of a system architecture of a controlsystem for a prosthetic/orthotic device according to certain embodimentsof the invention.

FIGS. 2A and 2B illustrate exemplary data detection sets relating tolevel ground walking by a user.

FIG. 3 illustrates a flowchart of an exemplary embodiment of a gaitstride detection process executable by the control system of FIG. 1.

FIG. 4 illustrates a flowchart of an exemplary embodiment of an eventdetection process executable by the control system of FIG. 1.

FIGS. 5A and 5B illustrate a dataflow diagram of an exemplary embodimentof a data comparison process executable by the control system of FIG. 1.

FIG. 6 illustrates a perspective view of an exemplary embodiment of alower-limb prosthesis usable with the control system of FIG. 1.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Embodiments of the invention disclosed herein relate generally tolimb-motion detection, and in particular, to determining the gait of auser to control, such as in real time, an actuatable prosthetic ororthotic device. In certain embodiments, the invention is used toidentify a gait pattern of a user, a gait state and/or a terrain onwhich the user is traveling. While the description sets forth variousembodiment-specific details, it will be appreciated that the descriptionis illustrative only and should not be construed in any way as limitingthe invention. Furthermore, various applications of the invention, andmodifications thereto, which may occur to those who are skilled in theart, are also encompassed by the general concepts described herein.

The features of the system and method will now be described withreference to the drawings summarized above. Throughout the drawings,reference numbers are reused to indicate correspondence betweenreferenced elements. The drawings, associated descriptions, and specificimplementation are provided to illustrate embodiments of the inventionand not to limit the scope of the disclosure.

Moreover, methods and functions described herein are not limited to anyparticular sequence, and the acts or blocks relating thereto can beperformed in other sequences that are appropriate. For example,described acts or blocks may be performed in an order other than thatspecifically disclosed, or multiple acts or blocks may be combined in asingle act or block.

The terms “prosthetic” and “prosthesis” as used herein are broad termsand are used in their ordinary sense and refer to, without limitation,any system, device or apparatus usable as an artificial substitute orsupport for a body part.

The term “orthotic” and “orthosis” as used herein are broad terms andare used in their ordinary sense and refer to, without limitation, anysystem, device or apparatus usable to support, align, prevent, protect,correct deformities of, immobilize, or improve the function of parts ofthe body, such as joints and/or limbs.

The term “coronal” as used herein is a broad term and is used in itsordinary sense and relates to any description, location, or directionrelating to, situated in, or being in or near the plane that passesthrough the long axis of the body. A “coronal plane” may also refer toany plane that passes vertically or approximately vertically through thebody and is perpendicular or approximately perpendicular to the medianplane and that divides the body into anterior and posterior sections.

The term “sagittal” as used herein is a broad term and is used in itsordinary sense and relates to any description, location, or directionrelating to, situated in, or being in or near the median plane (i.e.,the plane divides the body lengthwise into right and left halves) or anyplane parallel or approximately parallel thereto. A “sagittal plane” mayalso refer to any vertical anterior to posterior plane that passesthrough the body parallel or approximately parallel to the median planeand that divides the body into equal or unequal right and left sections.

The term “transverse” as used herein with respect to physiology is abroad term and is used in its ordinary sense and relates to anydescription, location, or direction relating to, situated in, or beingin or near a plane that divides the body into top and bottom portions orany plane parallel or approximately parallel thereto. A “transverseplane” may also refer to any horizontal or substantially horizontalplane that divides the body into equal or unequal top and bottomsections.

The term “time series” as used herein is a broad term and is used in itsordinary sense and includes, without limitation, a plurality of datapoints spaced apart at uniform or substantially uniform time intervals.Such data points may be in a continuous (with either a uniform or anon-uniform sampling rate) and/or a sequential (discrete) form. A “timeseries analysis” comprises a method for processing a time series ofsignals to determine patterns of trend and/or forecast (predict) one ormore values.

The terms “limb-motion event” and “gait event” as used herein are broadterms and are used in their ordinary sense and relate to, withoutlimitation, distinct positions of a limb during movement, such as duringa gait cycle. For example, a gait event for a stride of an individualmay include toe off, heel strike, midswing, or the like.

The terms “limb-motion phase,” “gait phase,” “limb-motion category” and“gait category” as used herein are broad terms and are used in theirordinary sense and relate to, without limitation, forms or categories oflimb movement. For example, a gait phase for a stride may include levelground walking, walking up or down stairs, walking up or down ramps,running and the like.

FIG. 1 illustrates a block diagram of one embodiment of a systemarchitecture of a control system 100 for a prosthetic/orthotic device.In certain embodiments, the control system 100 is usable with a lowerlimb prosthesis, such as, for example, an ankle-motion controlledprosthetic device described in U.S. application Ser. No. 11/056,344,filed Feb. 11, 2005, entitled “SYSTEM AND METHOD FOR MOTION-CONTROLLEDFOOT UNIT,” and published on Sep. 8, 2005, as U.S. Patent PublicationNo. 20050197717A1, which is hereby incorporated herein by reference inits entirety to be considered a part of this specification. In otherembodiments, the control system 100 is usable by an orthotic system or arehabilitation system having a motion-controlled foot or othermotion-controlled limb.

As depicted in FIG. 1, the control system 100 includes a sensor module102, a processor 104, a memory 106, an interface 108, a control drivemodule 110, an actuator 112 and a power module 114. In certainembodiments, the control system 100 processes data received from thesensor module 102 with the processor 104. The processor 104 communicateswith the control drive module 110 to control the operation of theactuator 112 to mimic natural joint movement (e.g., by adjusting theprosthetic/orthotic device): Furthermore, the control system 100 maypredict how the prosthetic/orthotic device may need to be adjusted inorder to accommodate movement by the user. The processor 104 may alsoreceive commands from a user and/or other device through the interface108. The power module 114 provides power to the other components of thecontrol system 100.

FIG. 1 illustrates the sensor module 102 communicating with theprocessor 104. In certain embodiments, the sensor module 102advantageously provides measurement data to the processor 104 and/or toother components of the control system 100. For example, the sensormodule 102 may be coupled to a transmitter, such as, for example, aBLUETOOTH® transmitter, that sends the sensed measurements to theprocessor 104. In other embodiments, other types of transmitters orwireless technology may be used, such as infrared, WIFI®, or radiofrequency (RF) technology. In other embodiments, wired technologies maybe used to communicate with the processor 104.

In certain embodiments, the sensor module 102 measures variablesrelating to the prosthetic/orthotic device, such as the position and/orthe movement of the prosthetic/orthotic device during one or moreportions of a gait cycle. For instance, the sensor module 102 may beadvantageously located on the prosthetic/orthotic device, such as near amechanical ankle center of rotation.

In other embodiments, the sensor module 102 may be located on the user'snatural limb that is attached to, or associated with, theprosthetic/orthotic device. In such an embodiment, the sensor module isused to capture information relating to the movement of the user'snatural limb to appropriately adjust the prosthetic/orthotic device. Forexample, the control system 100 may detect the gait of the user andadjust the prosthetic/orthotic device accordingly while theprosthetic/orthotic device is in a swing stage of the first step. Inother embodiments of the invention, there may be a latency period inwhich the control system 100 requires one or two strides before beingable to accurately determine the gait of the user and to adjust theprosthetic/orthotic device appropriately.

Furthermore, the sensor module 102 may be used to capture informationrelating to, for example, one or more of the following: the position ofthe prosthetic/orthotic device with respect to the ground; theinclination angle of the prosthetic/orthotic device; the direction ofgravity with respect to the position of the prosthetic/orthotic device;information that relates to a stride of the user, such as when theprosthetic/orthotic device contacts the ground (e.g., “heel strike” or“toe strike”), is in mid-stride or midswing, or leaves the ground (e.g.,“toe off” or “heel off”), the distance between the prosthetic/orthoticdevice and the ground at the peak of the swing stage (i.e., the maximumheight during the swing stage); the timing of the peak of the swingstage; combinations of the same and the like.

In certain preferred embodiments, the sensor module 102 provides a timeseries of motion signals relating to the real-time movement of thedevice associated with the limb. For instance, the sensor module 102 maycomprise one or more accelerometers that produce a continuous and/or adiscrete time series of motions signals to be analyzed by the processor104, which process is described in more detail below.

As depicted in FIG. 1, in certain embodiments of the invention, thesensor module 102 is further configured to measure environmental orterrain variables including one or more of the following: thecharacteristics of the ground surface, the angle of the ground surface,the air temperature and wind resistance. In certain embodiments, themeasured temperature may also be used to calibrate the gain and/or biasof other sensors.

The output signal(s) of the sensor module 102 may be generated at anypredefined rate. For instance, in certain embodiments, the sensor module102 generates a 100 Hz output signal representing the gait of a user. Inother embodiments, the output signal(s) of the sensor module 102 may begreater than, or less than, 100 Hz. In yet other embodiments, thefrequency of the sensor output(s) may vary between different portions ofa user's movement (e.g., stride). Furthermore, changes in the frequencyof the sensor module output signal may be compensated for by modifyingnormal data stored in the memory and used in comparison(s) with thereceived sensor module signal.

The processor 104 advantageously processes data received from othercomponents and/or modules of the control system 100. In certainembodiments, the processor 104 receives information from the sensormodule 102 relating to movement (e.g., gait) of the user. In turn, theprocessor 104 may use such movement data to determine one or morecharacteristics of the limb-motion of the user and/or to send commandsto the control drive module 110. For example, the data captured by thesensor module 102 may be used to generate a waveform comprising a timeseries of data points that portray information relating to the gait ormovement of a limb of the user. Subsequent changes to the waveform maybe identified by the processor 104 to predict future movement of theuser and to adjust the prosthetic/orthotic device accordingly.

In certain embodiments, the processor 104 may perform signal processingto detect one or more motion-related events. For instance, signalsrelating to the sensing of movement of a prosthetic/orthotic foot may beused to detect one or more gait stride events, which may include, forexample, heel strike, toe down, heel off, initial push off, toe off,start of a forward swing, mid forward swing, end of forward swing and/orheel strike preparation.

In certain embodiments, the processor 104 may perform signal processingto detect one or more motion-related phases or categories. For example,detected gait events and/or the received time series of motion signalsmay be analyzed in real time to determine a motion-related phase orcategory. In certain embodiments, signals relating to the sensing ofmovement of a prosthetic/orthotic foot may be used to detect one or morelocomotion phases which may include, for example, walking on levelground, walking up stairs and/or down stairs, and/or walking up anincline and/or down a decline. In other embodiments, additional phasesor categories may be detected, such as one or more of the following:lying down, cycling, climbing a ladder, running or the like.

In other embodiments, the processor 104 may perform a variety of otherprocessing functions. For example, the processor 104 may use informationreceived from the sensor module 102 to detect stumbling by the user. Theprocessor 104 may function as a manager of communication between thecomponents of the control system 100. For example, the processor 104 mayact as the master device for a communication bus between multiplecomponents of the control system 100 and/or provide power distributionand/or conversion to the other components of the control system 100.

In addition, the processor 104 may function so as to temporarily suspendor decrease power to the control system 100 when a user is in a sittingor a standing position. Such control provides for energy conservationduring periods of decreased use. The processor 104 may also processerror handling, such as when communication fails between components, anunrecognized signal or waveform is received from the sensor module 102,or when feedback from the control drive module 110 or theprosthetic/orthotic device causes an error or appears corrupt.

In certain embodiments, the processor 104 generates a security factorwhen analyzing information received from the sensor module 102 and/orwhen sending commands to the control drive module 110. For example, thesecurity factor may include one of a range of values that reflects adegree of certainty of a determination made by the processor 104. Forinstance, a high security value may indicate a higher degree ofcertainty associated with a determined motion-related event or phase,and a low security factor may indicate a lower degree of certainty as tothe determined event or phase. In certain embodiments, subsequentadjustments of the prosthetic/orthotic device are not made unless theevent and/or phase of the user is recognized with a security factorabove a predetermined threshold value.

The processor 104 may include modules that comprise logic embodied inhardware or firmware, or that comprise a collection of softwareinstructions written in a programming language, such as, for exampleC++. A software module may be compiled and linked into an executableprogram, installed in a dynamic link library, or may be written in aninterpretive language such as BASIC. It will be appreciated thatsoftware modules may be callable from other modules or from themselves,and/or may be invoked in response to detected events or interrupts.Software instructions may be embedded in firmware, such as an EPROM orEEPROM. It will be further appreciated that hardware modules may becomprised of connected logic units, such as gates and flip-flops, and/ormay be comprised of programmable units, such as programmable gate arraysor processors.

With continued reference to FIG. 1, the processor 104 further includes amemory 106 for storing instructions and/or data. In certain embodiments,the memory 106 preferably is configured to store data representing gaitpatterns or curves. For example, the memory 106 may include experimentaldata representing gait curves generated from a plurality of data setsrelating to a plurality of individuals, which experimental data isstored for comparison in motion-related event and/or phase detection.Experimental data may be gathered in a laboratory setting and/or inassociation with the particular control system 100. In furtherembodiments, such data may also be used for initial calibration of thecontrol system 100.

In yet other embodiments, the memory 106 may further store one or moreof the following types of data or instructions: an error log for theother components of the control system 100; information regarding pastactivity of the user (e.g., number of steps); control parameters and setpoints; information regarding software debugging or upgrading;preprogrammed algorithms for basic movements of the prosthetic ororthotic system; calibration values and parameters relating to thesensor module 102 or other components; instructions downloaded from anexternal device; combinations of the same or the like.

The memory 106 may comprise any buffer, computing device, or systemcapable of storing computer instructions and/or data for access byanother computing device or a computer processor. In certain embodiment,the memory 106 is a cache memory. In other embodiments of the invention,the memory 106 comprises random access memory (RAM) or may compriseother integrated and accessible memory devices, such as, for example,read-only memory (ROM), programmable ROM (PROM), and electricallyerasable programmable ROM (EEPROM). In yet other embodiments, at least aportion of the memory 106 may be separate from the processor 104. Forinstance, the memory 106 may comprise a removable memory, such as amemory card, a removable drive, or the like.

As illustrated, the processor 104 also communicates with the interface108, such as, for example, to receive user- or activity-specificinstructions from a user or from an external device. For instance, theprocessor 104 may communicate with a personal computer, a personaldigital assistant, a cell phone, a portable computing device, or thelike, to download or receive operating instructions. In certainembodiments, the interface 108 may comprise a network interface or aUniversal Serial Bus (USB) connector.

The control drive module 110 translates high-level plans or instructionsreceived from the processor 104 into low-level control signals to besent to the actuator 112. In certain embodiments, the control drivemodule 110 comprises a printed circuit board that implements controlalgorithms and tasks related to the management of the actuator 112. Thecontrol drive module 110 may also be used to provide feedback to theprocessor 104 regarding the position or movement of the actuator 112 orprosthetic/orthotic device.

The actuator 112 provides for the controlled movement of theprosthetic/orthotic device. For instance, the actuator 112 mayadvantageously control movement of the prosthetic/orthotic device toexecute angular and/or rotational displacements synchronized with theuser's movement or locomotion. For example, the actuator 112 may besimilar to one of the actuators described in copending U.S. applicationSer. No. 11/056,344, filed Feb. 11, 2005.

The power module 114 includes one or more sources and/or connectorsusable to power the control system 100. In one embodiment, the powermodule 114 is advantageously portable, and may include, for example, arechargeable battery. As illustrated, the power module 114 communicateswith the control drive module 110 and the processor 104. In otherembodiments, the power module 114 communicates with other control system100 components instead of, or in combination with, the control drivemodule 110 and the processor 104. For example, in one embodiment, thepower module 114 communicates directly with the sensor module 102.Furthermore, the power module 114 may communicate with the interface 108such that a user is capable of directly controlling the power suppliedto one or more components of the control system 100.

While the control system 100 has been described with reference tocertain embodiments, other variations of the control system 100 may beused. For example, the control system 100 may operate without theinterface 108. Furthermore, in certain embodiments, the control system100 is based on a distributed processing system wherein the differentfunctions performed by the prosthetic/orthotic system, such as sensing,data processing, and actuation, are performed or controlled by multipleprocessors that communicate with each other. In yet other embodiments,the processed data may be used to trigger an action other than movement,such as, for example, the illumination of a diode or the emitting of analarm or an audible alert.

It is also contemplated that the components of the control system 100may be integrated in different forms. For example, the components can beseparated into several subcomponents or can be separated into moredevices that reside at different locations and that communicate witheach other, such as through a wired or wireless network. For example, inone embodiment, the modules may communicate through RS232 or serialperipheral interface (SPI) channels. Multiple components may also becombined into a single component.

With continued reference to the control system 100 of FIG. 1, in certainembodiments of the invention, the sensor module 102 provides datarelating to the linear acceleration and/or angular acceleration of aprosthetic/orthotic device, and such data is used to determine one ormore motion-related events and phases and/or to appropriately adjust theprosthetic/orthotic device. For instance, one or more sensors of thesensor module 102 may measure acceleration of the prosthetic/orthoticdevice in three substantially, mutually perpendicular axes. For example,three accelerometers may be used to measure acceleration in the threeorthogonal axes to sense motion of the prosthetic/orthotic device and togenerate an associated time series of motion signals.

Various aspects of the received time series signal(s) may be used by theprocessor 104. For example, in certain embodiments, the processor usesthe signal itself, a first derivative (e.g., slope) and/or a secondderivative (e.g., slope rate) thereof to determine a motion-relatedevent and/or phase.

With reference to a prosthetic/orthotic foot device, linear accelerationdetection may include sensing downward acceleration (e.g., along anx-axis), forward acceleration (e.g., along a y-axis) and inwardacceleration (e.g., along a z-axis) from the perspective of the leftfoot of the user. For instance, detection of linear acceleration may beperformed according to the following three equations:

$\begin{matrix}{\frac{\partial^{2}x}{\partial t}:\mspace{14mu}{{downward}\mspace{14mu}{acceleration}}} \\{\frac{\partial^{2}y}{\partial t}:\mspace{14mu}{{forward}\mspace{14mu}{acceleration}}} \\{\frac{\partial^{2}z}{\partial t}:\mspace{14mu}{{inward}\mspace{14mu}{acceleration}}}\end{matrix}$

In certain embodiments, both the downward acceleration and the forwardacceleration measurements are used by the processor 104 to estimate amotion-related event and/or phase of a user. In certain embodiments, theinward acceleration measurement is used by the processor 104 for qualitycontrol to determine if the sensing module 102 is properly calibratedand/or positioned or is working correctly.

Furthermore, the sensing module 102 may also detect angularacceleration, such as angular acceleration in three substantiallyorthogonal planes. For instance, with reference to a prosthetic/orthoticfoot device, angular acceleration may include sensing, with one or moreaccelerometers (e.g., one or more gyroscopes), in a transverse (x-y)plane, in a coronal plane (y-z) and in a sagittal plane (e-x) of a user.In certain embodiments, detection of angular acceleration is performedaccording to the following three equations:

$\begin{matrix}{\frac{\partial^{2}\theta_{x}}{\partial t}:\mspace{14mu}{{angular}\mspace{14mu}{acceleration}\mspace{14mu}{in}\mspace{14mu}{transverse}\mspace{14mu}{plane}}} \\{\frac{\partial^{2}\theta_{y}}{\partial t}:\mspace{14mu}{{angular}\mspace{14mu}{acceleration}\mspace{14mu}{in}\mspace{14mu}{coronal}\mspace{14mu}{plane}}} \\{\frac{\partial^{2}z}{\partial t}:\mspace{14mu}{{angular}\mspace{14mu}{acceleration}\mspace{14mu}{in}\mspace{14mu}{sagittal}\mspace{14mu}{plane}}}\end{matrix}$

In certain embodiments, either or both of the angular accelerations inthe transverse and coronal planes are used to estimate a quality ofdetection by the sensing module 102. The angular acceleration in thesagittal plane may be used to estimate motion-related events and/orphases of the user.

In certain embodiments, one or more acceleration sensors may include anXSENS acceleration sensor, such as the MT9 Inertial 3D motion trackercommercially available from XSENS Motion technologies (Netherlands). Inyet other embodiments, other suitable types of acceleration or movementreading sensors may also be used. For example, the sensor module 102 mayinclude a gyroscope configured to measure angular speed. In otherembodiments, the sensor module 102 includes a plantar pressure sensorconfigured to measure, for example, the vertical plantar pressure of aspecific underfoot area. Other movement signal(s) in a given referenceplane can also be utilized, such as, for example, measurements ofcentrifugal force, magnetic field and/or electromagnetic field.

In yet other embodiments, the sensor module 102 may include one or moreof the following in place of, or in combination with, at least oneaccelerometer: kinematic sensors, multi- and/or single-axis gyroscopes,multi-axis accelerometers, load sensors, flex sensors or myoelectricsensors that may be configured to capture data from the user's naturallimb. U.S. Pat. No. 5,955,667, U.S. Pat. No. 6,301,964, and U.S. Pat.No. 6,513,381, also illustrate examples of sensors that may be used withembodiments of the invention, which patents are herein incorporated byreference in their entireties.

Furthermore, in certain embodiments of the invention, the sensor module102 may be configured to monitor motion of a limb (or a deviceassociated with a limb) with respect to a global reference instead of,or in combination with, the local tracking of movement. For example, thesensor module 102 may include a sensor that detects movement withrespect to another reference plane or object, such as the earth, as isdone in global positioning systems (GPS).

FIGS. 2A and 2B illustrate exemplary data detection sets relating tolevel ground walking by a user and include, for example, signalsindicative of the motion of a prosthetic foot. As shown, the six graphsillustrate relative measurements of linear acceleration (i.e., downward,forward and inward directions) and angular acceleration (i.e.,transverse, coronal and sagittal planes). In certain embodiments of theinvention, such data sets are generated by the sensor module 102 and arefurther analyzed by the processor 104 to determine characteristics ofthe gait of the user. In other embodiments of the invention, otherreceived signals may relate to motion of another type of prosthetic limb(e.g., an arm) or relate to the motion of orthotic devices.

In certain embodiments of the invention, the processor 104advantageously performs a time series analysis on the sensed motionsignals, or data points relating thereto, to determine characteristicsof a gait of a user. Such a time series analysis includes processing thesequence(s) of received measurements (e.g., acceleration measurements)with the general assumptions that the measurements follow non-randomorders and that successive values in the received sensor data representconsecutive measurements taken at equally spaced time intervals.

For example, in certain preferred embodiments, one or more data pointsof the received time series of motion signals is associated with one ormore timestamps that identify portions of the signal for normalizationand/or for comparison with stored data signals. The timestamps allow fordifferent signals having similar timestamps to be compared and processedby the processor 104. For instance, the one or more timestampsassociated with the received sensor signal may be based on a detected ordetermined limb-motion event (e.g., a heel strike or a toe-off event).That is, the timestamp correlates the associated data point with aparticular point in time after the determined event has occurred.

The timestamps also preferably allow data sets having a different numberof values (e.g., a different rate) to be compared by the processor 104.For example, a received time series of motion signals may have a dataset of eighty points for a particular duration of time, while a storeddata set may include one hundred points for the same duration. Bycorrelating the timestamps between the two data sets, the processor 104is able to appropriately expand and/or shift the received data set, suchas by interpolation, to have the same number of data points as, and toline up in time with, the stored data set.

FIG. 3 illustrates an exemplary flowchart of a gait stride detectionprocess 300. In certain embodiments, the gait detection process 300 isperformed at least in part by the control system 100 of FIG. 1 todetermine a motion-related event and/or phase of a user and toappropriately adjust an actuating mechanism of a correspondingprosthetic/orthotic device. For exemplary purposes, the gait detectionprocess 300 will be described with reference to the components of thecontrol system 100 in the context of a motion-controlled prostheticfoot. A skilled artisan, however, will recognize from the disclosureherein a wide variety of other hardware and/or software systems ordevices capable of performing at least a portion of the gait detectionprocess 300.

The gait detection process 300 begins with block 305, wherein theprocessor 104 receives measurement data from the sensor module 102. Incertain embodiments, the measurement data comprises linear accelerationdata and/or angular acceleration data sensed with respect to themovement of the prosthetic ankle device. For instance, measurement datamay include at least the following six subsets of data received from atleast one accelerometer positioned on the prosthetic ankle device:linear acceleration data in the downward, forward and inward directions;and angular acceleration data in the transverse, coronal and sagittalplanes. In other embodiments, the measurement data may relate to themovement of a healthy limb and be used to control the movement of acorresponding artificial limb.

In certain embodiments, the measurement data is preferably received as atime series of data points, wherein the measurement data includes asequence of data points ordered in the time in which they were observed.In certain embodiments, the time series of data points is a discretetime series set wherein acceleration measurements of the prostheticdevice are taken every 10 milliseconds. In yet other embodiments, otherfrequencies of measurements may be used and/or the frequency ofmeasurements may be variable over a particular period of time and/orduring particular portions of the user's gait. In yet other embodiments,the received data may be in the form of a continuous time series witheither a uniform or non-uniform sampling rate.

After receiving the measurement data, the processor 104 preferablyfilters the data (block 310) in order to predict future data pointsand/or to provide a smoother signal for the subsequent detectionroutines. In certain embodiments, such filtering may include predictive,static and/or adaptive filtering. For instance, an autoregressive (AR)filter, such as for example, a Kalman filter, may process the last “n”data points in the received motion signal to remove random error. Insuch embodiments, the filter may determine how much weight is to begiven to each of a number of past data points in performing the currentdata analysis. This advantageously provides for a smoother signal byfiltering out fluctuation in the signal (e.g., noise) and signalabnormalities. For instance, the filter may determine that, during theprocessing of a current data input, forty percent of the valueassociated with the previous (last) data point is to be used, thirtypercent of the value associated with the second-to-last data point is tobe used, fifteen percent of the value associated with the third-to-lastdata point is to be used, and so forth.

In other embodiments, the received measurement data may be processed byother regressive techniques (e.g., linear, k'th order polynomial,quadratic, exponential, harmonic) and/or other filters (e.g., movingaverage (MA), autoregressive moving average (ARMA), autoregressiveintegrated moving average (ARIMA), low pass, high pass, fuzzy,combinations of the same and the like) for producing a smoother signal.

For example, in certain embodiments, an autoregressive filter is used tocalculate the slope of a received time series of motion signals relatedto linear acceleration and/or a rate of turn (slope rate) of a receivedtime series of motion signals related to angular acceleration. Thiscalculated data may then be used to determine a current motion-relatedevent. For instance, in certain embodiments, the processor 104 uses thefollowing equations to calculate the slope and slope rate for at leastone time series of motion signals:

$\begin{matrix}{{AR}:=\begin{bmatrix}{ar}_{0} & {ar}_{1} & \ldots & {ar}_{i} & \ldots & {ar}_{n}\end{bmatrix}} & {{\sum\limits_{i = 0}^{n}{ar}_{i}} = 1} \\{{\frac{\partial}{\partial t}\left( \frac{\partial^{2}X_{l,j}}{\partial t^{2}} \right)} = {\sum\limits_{k = {j - n}}^{j}{\frac{1}{\Delta\; t}\left( {\frac{\partial^{2}X_{l,k}}{\partial t^{2}} - \frac{\partial^{2}X_{l,{k - 1}}}{\partial t^{2}}} \right){AR}_{j - k}}}} & {j \geq {n + 1}} \\{{\frac{\partial^{2}}{\partial t^{2}}\left( \frac{\partial^{2}X_{l,j}}{\partial t^{2}} \right)} = {\sum\limits_{k = {j - n}}^{n}{\frac{1}{\Delta\; t^{2}}\frac{\left( {\frac{\partial^{2}X_{l,k}}{\partial t^{2}} - {2\frac{\partial^{2}X_{l,{k - 1}}}{\partial t^{2}}} + \frac{\partial^{2}X_{l,{k - 2}}}{\partial t^{2}}} \right)}{\Delta\; t^{2}}{AR}_{j - k}}}} & {j \geq {n + 2}} \\{\frac{\partial^{2}X_{l,j}}{\partial t^{2}}:=\begin{bmatrix}\frac{\partial x_{1}^{2}}{\partial t^{2}} & \frac{\partial y_{1}^{2}}{\partial t^{2}} & \frac{\partial z_{1}^{2}}{\partial t^{2}} & \frac{\partial\theta_{x,1}^{2}}{\partial t^{2}} & \frac{\partial\theta_{y,1}^{2}}{\partial t^{2}} & \frac{\partial\theta_{z,1}^{2}}{\partial t^{2}} \\\frac{\partial x_{2}^{2}}{\partial t^{2}} & \frac{\partial y_{2}^{2}}{\partial t^{2}} & \frac{\partial z_{2}^{2}}{\partial t^{2}} & \frac{\partial\theta_{x,2}^{2}}{\partial t^{2}} & \frac{\partial\theta_{y,2}^{2}}{\partial t^{2}} & \frac{\partial\theta_{z,2}^{2}}{\partial t^{2}} \\\frac{\partial x_{3}^{2}}{\partial t^{2}} & \frac{\partial y_{3}^{2}}{\partial t^{2}} & \frac{\partial z_{3}^{2}}{\partial t^{2}} & \frac{\partial\theta_{x,3}^{2}}{\partial t^{2}} & \frac{\partial\theta_{y,3}^{2}}{\partial t^{2}} & \frac{\partial\theta_{z,3}^{2}}{\partial t^{2}} \\\vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\\frac{\partial x_{m}^{2}}{\partial t^{2}} & \frac{\partial y_{m}^{2}}{\partial t^{2}} & \frac{\partial z_{m}^{2}}{\partial t^{2}} & \frac{\partial\theta_{x,m}^{2}}{\partial t^{2}} & \frac{\partial\theta_{y,m}^{2}}{\partial t^{2}} & \frac{\partial\theta_{z,m}^{2}}{\partial t^{2}}\end{bmatrix}} & {j = {1\ldots\mspace{11mu} N}}\end{matrix}$wherein n is a number of data points; AR is a vector holding n datapoint values that determine how much weight is given to past data valuesso as to filter the signal prior to further processing; X is a positionmatrix of the monitored object; j is a relative position in time of aparticular data point; t is time; and Δt is a time between data points(e.g., ten milliseconds). The bottom equation shown above comprises asignal matrix that may be used to process a variety of forms of data(e.g., acceleration and/or gyroscope data) representing an activitymeasurement signal.

In yet other embodiments, different filtering techniques may be usedwith different data sets and/or during different detected motion-relatedevents. For example, linear acceleration signals may undergo a differentfilter process than angular acceleration signals received during thesame time period.

In yet other embodiments, each motion-related event is associated withits own stored data set. Each data set may, in turn, include a pluralityof parameters for comparison with the received time series of motionsignals. For instance, each data set relating to event recognition mayinclude between three or more parameters, such as, for example, betweenthree and twelve parameters. Generally, the more parameters that areused in the data comparison, the more accurate is the event and/or phasedetection.

For instance, the parameters may include values and their first andsecond derivatives received from between two and six motion sensors. Forexample, in an embodiment, one of the parameters may include a slope ofthe downward acceleration when threshold values of a gyroscope signalhave been met in the sagittal plane. Such may further trigger theprocessing of forward acceleration data and the rate of turn of theforward acceleration.

Such parameters may also be used in determining a security value for theevent and/or phase determination. If several or all of the parametersare met in a comparison between a stored data set and a received timeseries of motion signals, the processor 104 may generate a high securityvalue indicating a high likelihood that an accurate determination of theevent and/or phase has been made. Likewise, if two parameters are usedand/or set in such a comparison, the processor 104 may generate a lowsecurity value.

After the data has been received and/or filtered, the processor 104determines a motion-related event based on the received data (block315). For instance, processor 104 may detect an ankle-motion relatedevent of the corresponding prosthetic ankle device, such as, forexample, heel strike, toe down, heel off, toe off, mid-swing or end ofswing.

If the event detected by the processor 104 is related to a swing stage(block 320), the gait detection process moves to block 325. Theprocessor 104 then determines if the user is walking on level ground. Ifthe processor 104 determines that the user in walking on level ground,the gait detection process 300 proceeds with block 330. At block 330,the processor 104 determines if there has been a toe-off event (e.g.,the “toe” of the prosthetic foot leaving the ground during a stride). Ifthere has been a toe-off event detected, the processor 104 determines ifa security threshold has been met (block 335). For example, indetermining the toe-off event, the processor 104 may also generate asecurity value, as discussed previously, that represents the probabilityor percent certainty that the toe-off event has been correctly detected.

If the security value is not above a particular threshold (e.g., lowlikelihood of correctness of determination), or if the processor 104does not detect a toe-off event at block 330, the gait detection process300 moves to block 340, and no action is taken on the actuator 112. Forinstance, an actuator of the prosthetic ankle device may be kept in itscurrent state or position, or the actuator may automatically return to adefault state or position.

If the security value does meet the predetermined threshold in block335, the gait detection process 300 moves to block 345. At block 345,the processor 104 outputs commands for appropriately adjusting theactuator 112. For example, the processor 104 may output a signal to thecontrol drive module 110 to cause the prosthetic ankle device todorsiflex such that the toe of the device is raised after toe-off.

With reference to block 325, if the user is not walking on level ground,or if the event detected by the processor 104 at block 320 is notrelated to a swing stage, the gait detection process 300 proceeds withblock 350. At block 350, the processor 104 compares the received timeseries data with stored measurement data. For instance, the memory 106may store normal data for a plurality of different motion-relatedphases, which normal data is then compared with a normalized version ofthe received data in order to determine the current phase. In certainembodiments, the memory 106 includes normal data relating to levelground walking, incline and decline walking, and walking up and downstairs. Furthermore, the normal data may be based on information that isgeneral to all users, or the normal data may be determined from previousstrides of the particular user.

In certain embodiments, the received time series of motion signals isnormalized by the processor 104 according to the following equations:

${DataNorm} = \begin{bmatrix}\frac{\partial^{2}x_{1}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}y_{1}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}z_{1}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}\theta_{x,1}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}\theta_{y,1}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}\theta_{z,1}^{\prime}}{\partial t^{2}} & S_{1}^{\prime} \\\vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\\frac{\partial^{2}x_{N}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}y_{N}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}z_{N}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}\theta_{x,N}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}\theta_{y,N}^{\prime}}{\partial t^{2}} & \frac{\partial^{2}\theta_{z,N}^{\prime}}{\partial t^{2}} & S_{N}^{\prime}\end{bmatrix}$${{dt} = \frac{L - k}{n - 1}},{t_{i}^{\prime} = {t_{i - 1}^{\prime} + {dt}}},{t = \left\lfloor t_{i}^{\prime} \right\rfloor},{\xi = {t - t_{i}^{\prime}}}$$\begin{matrix}{{\frac{\partial^{2}x_{i}^{\prime}}{\partial t^{2}} = {{\frac{\partial^{2}x_{{t\;\omega} - 1}}{\partial t^{2}}\xi} + {\frac{\partial^{2}x_{t\;\omega}}{\partial t^{2}}\left( {1 - \xi} \right)}}},{\frac{\partial^{2}\theta_{x,i}^{\prime}}{\partial t^{2}} = {{\frac{\partial^{2}\theta_{x,{{t\;\omega} - 1}}}{\partial t^{2}}\xi} + {\frac{\partial^{2}\theta_{x,{t\;\omega}}}{\partial t^{2}}\left( {1 - \xi} \right)}}},} \\{{\frac{\partial^{2}y_{i}^{\prime}}{\partial t^{2}} = {{\frac{\partial^{2}y_{{t\;\omega} - 1}}{\partial t^{2}}\xi} + {\frac{\partial^{2}y_{t\;\omega}}{\partial t^{2}}\left( {1 - \xi} \right)}}},{\frac{\partial^{2}\theta_{y,i}^{\prime}}{\partial t^{2}} = {{\frac{\partial^{2}\theta_{y,{{t\;\omega} - 1}}}{\partial t^{2}}\xi} + {\frac{\partial^{2}\theta_{y,{t\;\omega}}}{\partial t^{2}}\left( {1 - \xi} \right)}}},} \\{{\frac{\partial^{2}z_{i}^{\prime}}{\partial t^{2}} = {{\frac{\partial^{2}z_{{t\;\omega} - 1}}{\partial t^{2}}\xi} + {\frac{\partial^{2}z_{t\;\omega}}{\partial t^{2}}\left( {1 - \xi} \right)}}},{\frac{\partial^{2}\theta_{y,i}^{\prime}}{\partial t^{2}} = {{\frac{\partial^{2}\theta_{y,{{t\;\omega} - 1}}}{\partial t^{2}}\xi} + {\frac{\partial^{2}\theta_{y,{t\;\omega}}}{\partial t^{2}}\left( {1 - \xi} \right)}}},}\end{matrix}$ S_(i)^(′) = S_(t ω),   i = 0…  Nwherein ∂t is a difference in time between data points; L is an endstream point identifier (e.g., end of stride); k is a start stream pointidentifier (e.g., beginning of stride); n is a number of points in acorresponding comparison data matrix; t′_i is a new timestamp in anormalized data matrix; and ξ is a distance from the new timestamp totime points of the normalized dataset. Moreover, the top equationillustrated above represents an information matrix for raw data receivedfrom sensors, such as from the sensor module 102.

Once the received data has been normalized, the processor 104 is able tocompare the normalized data with the stored normal data (e.g., in thecomparison matrix) for different phases in order to determine thecurrent motion-related phase of the user (block 355). For instance, theprocessor 104 may determine from the comparison the type of surface onwhich the user is walking (e.g., ramp, stairs; level ground) and/or theslope of the surface.

After the current phase is determined, the gait detection process 300proceeds with block 360, wherein the processor 104 stores in the memory106 the received data, the determined event, the determined phase, asecurity value and/or timestamps associated with the received timeseries signal. For example, in certain embodiments, the processor 104may store data from multiple strides, such as the previous three stridesof the user. This information stored in the memory 106 may then bepreferably used in future data processing, such as during the comparisonroutine at block 350.

The gait detection process 300 then moves to block 335 to determine if asecurity threshold has been met for the determined phase. If thegenerated security value is not above the predetermined threshold, thegait detection process 300 moves to block 340, and no action is taken onthe actuator 112. If the security value does meet the predeterminedthreshold in block 335, the gait detection process 300 moves to block345. At block 345, the processor 104 outputs commands for appropriatelyadjusting the actuator 112 based on the determined phase.

FIG. 4 illustrates a flowchart of an exemplary event detection process400 according to certain embodiments of the invention. For instance, theevent detection process 400 may be at least partially performed duringblocks 315-345 of the gait stride detection process 300 of FIG. 3. Forexemplary purposes, the event detection process 400 will be describedwith reference to the components of the control system 100 in thecontext of a motion-controlled prosthetic foot. In particular, the eventdetection process 400 will be described with reference to detecting atoe-off event of the motion-controlled prosthetic foot. A skilledartisan, however, will recognize from the disclosure herein a widevariety of other hardware and/or software systems or devices capable ofperforming at least a portion of the event detection process 400.

The event detection process 400 begins at block 405 by determining ifthe prosthetic foot device is in a stance stage. That is, the processor104 determines from received measurement data if at least a portion ofthe prosthetic foot device is in contact with the ground. If theprosthetic foot device is not in a stance stage, the event detectionprocess 400 moves to block 410 to perform swing stage event detection.If the prosthetic foot device is in a stance stage, the event detectionprocess 400 proceeds with block 415. At block 415, the processor 415performs a time series analysis on the received measurement data, suchas is discussed above. For instance, the processor 104 may use a Kalmanfilter to process the received time series of motion signals.

At block 420, the processor 104 determines if a toe-off event has takenplace. If a toe-off event has not occurred, the event detection process400 returns to block 415 wherein the processor 104 continues to analyzereceived data. If a toe-off event has occurred, the processor 104 storesthe toe-off values in the memory 106 (block 425).

At block 430, the processor 104 then determines if the user is walkingon level ground, such as by, for example, analyzing the receivedmeasurement data. If the user is walking on level ground, the processor104 then determines if the security threshold has been met (block 435).For instance, in certain embodiments, the processor 104 produces atleast one security value when determining a motion-related event and/orphase. Such a security value may represent the probability or percentcertainty that the particular event or phase has been correctlydetected.

If the generated security value does not meet or exceed thepredetermined threshold, or if at block 430 the processor 104 does notdetermine that the user is walking on level ground, the event detectionprocess 400 moves to block 440, and no action is taken on the actuator112. If, however, the security threshold is met, the processor 104outputs commands for appropriately adjusting the actuator 112 (block445). For example, the processor 104 may output a signal to the controldrive module 110 to cause the prosthetic ankle device to dorsiflex suchthat the toe of the device is raised after toe off.

FIGS. 5A and 5B illustrate a dataflow diagram of data comparison process500 according to certain embodiments of the invention. For example, thecomparison process 500 may be performed at least in part during severalof the blocks (e.g., blocks 315, 320, 330 and 350) of the gait stridedetection process 300 of FIG. 3. For exemplary purposes, the datacomparison process 500 will be discussed with reference to detecting andprocessing gait events relating to a motion-controlled prosthetic foot.A skilled artisan, however, will recognize from the disclosure herein awide variety of other hardware and/or software systems or devicescapable of performing at least a portion of the comparison process 500.

The illustrated comparison process 500 includes a data stream input 502that includes information relating to movement of the motion-controlledprosthetic foot. In certain embodiments, the data stream input comprisesat least one time series of data signals indicative of acceleration(e.g., linear acceleration and/or angular acceleration) of theprosthetic foot.

As shown, the comparison process 500 includes several differentroutines, each of which relates to a motion-related event of theprosthetic foot. In particular, the comparison process 500 includes aheel-strike routine 504, a toe-on-ground routine 506, a heel-off-groundroutine 508, a toe off routine 510, a midswing routine 512 and a secondheel-strike routine 514. As is also illustrated, the time from theheel-strike event to the toe-off event is labeled as a stance stage, andthe time from the toe-off event to the heel-strike event is labeled as aswing stage.

In certain embodiments, the data stream input 502 is received by all theroutines at substantially the same time for further processing and eventdetection. In general, the data flow of the comparison process 500occurs from left to right, as illustrated by the block arrows in FIGS.5A and 5B. For example, during normal level ground walking, theprocessing and detection of a heel-strike event will occur prior to theprocessing and detection of a toe-on-ground event. In certainembodiments, the detection routine of one particular event is nottriggered or initiated unless the previous gait event has been detected.

As shown in FIGS. 5A and 5B, the comparison process 500 utilizes a“HEEL” variable and a “TOE” variable to process the data stream inputinformation 502. In particular, the HEEL variable is assigned a value of“1” when the processor 104 determines that the heel portion of theprosthetic foot device is in contact with the ground. The HEEL variableis assigned a value of “0” when the processor 104 determines that theheel of the prosthetic foot device is not in contact with the ground(e.g., is in a swing stage). Likewise, the TOE variable is assigned avalue of “1” when the processor 104 determines that the toe portion ofthe prosthetic foot device is in contact with the ground. The TOEvariable is assigned a value of “0” when the processor 104 determinesthat the toe of the prosthetic foot device is not in contact with theground (e.g., is in a swing stage).

In certain embodiments, the values of the HEEL and/or TOE variables arederived from acceleration measurements received by the processor. In yetother embodiments, pressure sensors placed near the toe and the heelportions of the prosthetic foot device are used to set the values forthe TOE and HEEL variables.

As illustrated, the heel-strike routine 504 begins at block 520 bydetermining if the HEEL variable has changed from a “0” value to a “1”value, indicating contact of the heel with a ground surface. If the HEELvariable remains a “0” value, the heel-strike routine 504 continues withblock 520.

If the heel-strike routine 504 does detect a transition in the value ofthe HEEL variable from “0” to “1,” the processor 104 then stores atimestamp of this change in the memory 106 (block 522). Furthermore, theprocessor 104 compares (at block 524) the received data stream inputdata with stored normal data (block 526). As shown, the normal datacomprises data that relates to a heel-strike event, wherein there is atransition from a midswing stage (e.g., both HEEL and TOE are equal to“0”) to a stage wherein HEEL equals “1” and TOE equals “0.” Forinstance, the normal data may comprise previously recorded and processeddata for the particular prosthetic foot. In other embodiments, thenormal data may be generalized data applicable to a wide variety ofusers.

In certain embodiments, each of the distinct gait events isadvantageously associated with its own normal data. This is especiallyuseful in situations wherein the quality of data differs between thegait events. For example, it may be easier to accurately determine whena heel-strike event occurs than when a midswing event occurs, and thequality of data may be different for each event.

Once the received data has been compared with the stored data, theprocessor 104 determines if a true heel-strike event has occurred, andthe processor 104 stores the new generated data, such as in the memory106 (block 528). This stored data can then be used in later comparisonsof the heel-strike routine 504.

Once a heel-strike event has been detected, the comparison process 500proceeds with the toe-on-ground routine 506. The toe-on-ground routine506 begins at block 530 by determining if the TOE variable has changedfrom a “0” value to a “1” value, indicating contact of the toe portionwith a ground surface. If the TOE variable remains a “0” value, thetoe-on-ground routine 506 continues with block 530.

If the toe-on-ground routine 506 does detect a transition in the valueof the TOE variable from “0” to “1,” the processor 104 then stores atimestamp of this change in the memory 106 (block 532). Furthermore, theprocessor 104 compares (at block 534) the received data stream inputdata with stored normal data (block 536). As shown, the normal datacomprises data that relates to a toe-on-ground event, wherein there is atransition in the value of the TOE variable from “0” to “1” and whereinthe HEEL variable remains equal to

Once the received data has been compared with the stored data, theprocessor 104 determines if a true toe-on-ground event has occurred, andthe processor 104 stores the new generated data, such as in the memory106 (block 538). This stored data can then be used in later comparisonsof the toe-on-ground routine 506.

Once a toe-on-ground event has been detected, the comparison process 500proceeds with the heel-off-ground routine 508. The heel-off-groundroutine 508 begins at block 540 by determining if the HEEL variable haschanged from a “1” value to a “0” value, indicating a separation betweenthe heel portion of the prosthetic device and a ground surface. If theHEEL variable remains a “1” value, the heel-off-ground routine 508continues with block 540.

If the heel-off-ground routine 508 does detect a transition in the valueof the HEEL variable from “1” to “0,” the processor 104 then stores atimestamp of this change in the memory 106 (block 542). Furthermore, theprocessor 104 compares (at block 544) the received data stream inputdata with stored normal data (block 546). As shown, the normal datacomprises data that relates to a heel-off-ground event, wherein there isa transition in the value of the HEEL variable from “1” to “0” andwherein the TOE variable remains equal to

Once the received data has been compared with the stored data, theprocessor 104 determines if a true heel-off-ground event has occurred,and the processor 104 stores the new generated data, such as in thememory 106 (block 548). This stored data can then be used in latercomparisons of the heel-off-ground routine 508.

Once a heel-off-ground event has been detected, the comparison process500 proceeds with the toe-off-ground routine 510. The toe-off-groundroutine 510 begins at block 550 by determining if the TOE variable haschanged from a “1” value to a “0” value, indicating a separation betweenthe toe portion of the prosthetic device and a ground surface. If theTOE variable remains a “1” value, the toe-off-ground routine 510continues with block 550.

If the toe-off-ground routine 510 does detect a transition in the valueof the TOE variable from “1” to “0,” the processor 104 then stores atimestamp of this change in the memory 106 (block 552). Furthermore, theprocessor 104 compares (at block 554) the received data stream inputdata with stored normal data (block 556). As shown, the normal datacomprises data that relates to a toe-off-ground event wherein there is atransition in the value of the TOE variable from “1” to “0” and whereinthe HEEL variable remains equal to

Once the received data has been compared with the stored data, theprocessor 104 determines if a true toe-off-ground event has occurred,and the processor 104 stores the new generated data, such as in thememory 106 (block 558). This stored data can then be used in latercomparisons of the toe-off-ground routine 510.

Once a toe-off-ground event has been detected, the comparison process500 proceeds with the midswing routine 512. The midswing routine 510begins at block 550 by determining if a midswing state has beenattained. For example, in certain embodiments, the processor 104 mayanalyze how much time has passed since the detection of thetoe-off-ground event (e.g., how long the prosthetic foot has not beencontacting the ground) to determine what point the user reach in his orher swing. For instance, if the swing stage of a user's stride hasaveraged approximately one second, the processor may determine themidswing state to be approximately 0.5 second after the detection of thetoe-off-ground event.

In other embodiments, the processor 104 may analyze accelerationmeasurements to detect a midswing state. For instance, the processor 104may process linear acceleration measurements in the downward and/orforward directions to determine when the prosthetic foot has reached thepeak position of the swing and has begun to move toward the groundsurface. If the midswing state has still not been reached, the midswingroutine 512 continues with block 560.

If the midswing state has been reached, the processor 104 then stores atimestamp of this point in the memory 106 (block 562). Furthermore, theprocessor 104 compares (at block 564) the received data stream inputdata with stored normal data (block 566). As shown, the normal datacomprises data that relates to a detected midswing event, wherein TOEvariable and the HEEL variable are both equal to “0.”

Once the received data has been compared with the stored data, theprocessor 104 determines if a true midswing event has occurred, and theprocessor 104 stores the new generated data, such as in the memory 106(block 568). This stored data can then be used in later comparisons ofthe midswing routine 512.

Once a midswing event has been detected, the comparison process 500returns to a heel-strike routine, which is illustrated in FIGS. 5A and5B as the second heel-strike routine 514. The second heel-strike routine514 is generally the same as the heel-strike routine 504. That is, thesecond heel-strike routine 514 begins by determining if the HEELvariable has changed from a “0” value to a “1” value, indicating contactbetween the heel portion of the prosthetic device and the groundsurface. As can be seen, the routines of the comparison process 500 maybe repeated, as appropriate, throughout the gait of the user.

FIG. 6 illustrates an exemplary embodiment of a lower-limb prosthesisusable with embodiments of the present invention. In particular, FIG. 6illustrates a prosthetic ankle device 600 having a lower limb member 602coupled to a foot unit 604. In certain embodiments, an actuator 606actively controls an angle between the lower limb member 602 and thefoot unit 604 based on control signals received from a processor, asdescribed in more detail previously. In certain embodiments, a frame 608houses a sensor module, such as the sensor module 102 of FIG. 1, whichmay include one or more sensors usable to monitor motion of theprosthetic ankle device 600. Further details of motion-controlled footunits usable with embodiments of the invention are disclosed in U.S.patent application Ser. No. 11/219,317, filed Sep. 1, 2005, and entitled“ACTUATOR ASSEMBLY FOR PROSTHETIC OR ORTHOTIC JOINT,” and U.S. patentapplication Ser. No. 11/218,923, filed Sep. 1, 2005, and entitled“SENSING SYSTEM AND METHOD FOR MOTION-CONTROLLED FOOT UNIT,” each ofwhich is hereby incorporated herein by reference in its entirety to beconsidered a part of this specification.

It is contemplated that the above-described systems may be implementedin prosthetic or orthotic systems other than transtibial, orbelow-the-knee, systems. For example, in one embodiment of theinvention, the prosthetic or orthotic system may be used in atransfemoral, or above-the-knee, system, such as is disclosed in U.S.patent application Ser. No. 11/123,870, filed May 6, 2005, and entitled“MAGNETORHEOLOGICALLY ACTUATED PROSTHETIC KNEE;” U.S. patent applicationSer. No. 11/077,177, filed Mar. 9, 2005, and entitled “CONTROL SYSTEMAND METHOD FOR A PROSTHETIC KNEE;” U.S. Pat. No. 6,764,520, issued onJul. 20, 2004, and entitled “ELECTRONICALLY CONTROLLED PROSTHETIC KNEE;”and U.S. Pat. No. 6,610,101, issued Aug. 26, 2003, and entitled“SPEED-ADAPTIVE AND PATIENT-ADAPTIVE PROSTHETIC KNEE,” each of which ishereby incorporated herein by reference in its entirety and is to beconsidered as part of this specification. For example, the prosthetic ororthotic system may include both a prosthetic or orthotic ankle and/or aprosthetic or orthotic knee.

Moreover, embodiments of the invention disclosed herein may be performedby one or more software modules. For example, an embodiment of theinvention may include a machine loadable software program for aprocessor for controlling the movement of a device associated with alimb. The software program may include an input module, a filter module,a comparison module, and a control module. The input module may beconfigured to receive a time series of motion signals. The filter modulemay be configured to process the time series of motion signals and/or togenerate a plurality of filtered signals. The comparison module may beconfigured to compare the plurality of filtered signals with a pluralityof sample signals and configured to generate a gait event selectionsignal indicative of the movement of a device associated with a limb.The control module may be configured to generate a control signal basedat least in part on the gait event selection signal, wherein the controlsignal is capable of controlling the movement of the device associatedwith a limb. Furthermore, the software module(s) may include, forexample, an AR filter and/or a Kalman filter.

While certain embodiments of the inventions have been described, theseembodiments have been presented by way of example only, and are notintended to limit the scope of the disclosure. Indeed, the novel methodsand systems described herein may be embodied in a variety of otherforms. For example, the foregoing may be applied to the motion-controlof joints other than the ankle, such as a knee or a shoulder.Furthermore, various omissions, substitutions and changes in the form ofthe methods and systems described herein may be made without departingfrom the spirit of the disclosure. The accompanying claims and theirequivalents are intended to cover such forms or modifications as wouldfall within the scope and spirit of the disclosure.

1. A system for analyzing the movement of a device associated with alimb, the system comprising: at least one accelerometer configured togenerate a time series of motion signals indicative of a movement of adevice associated with a limb; and a process module in communicationwith the at least one accelerometer, the process module comprising: afilter configured to process the time series of motion signals receivedfrom the at least one accelerometer and configured to generate from thetime series of motion signals a plurality of filtered signals; and acomparison module configured to compare the plurality of filteredsignals with a plurality of sample signals, wherein the comparisonmodule is further configured to identify, based on said comparison,limb-motion events associated with the movement of the device associatedwith the limb.
 2. The system of claim 1, wherein the at least oneaccelerometer comprises a gyroscope.
 3. The system of claim 1, whereinthe time series of motion signals comprises at least one of forward,inward and downward linear acceleration signals.
 4. The system of claim1, wherein the filter comprises an autoregressive filter.
 5. The systemof claim 4, wherein the filter comprises a Kalman filter.
 6. The systemof claim 1, further comprising a database configured store the pluralityof sample signals.
 7. The system of claim 1, wherein the process modulecomprises a machine executable software module.
 8. The system of claim1, wherein the limb is an artificial limb.
 9. The system of claim 8,wherein the artificial limb comprises one of a prosthetic device and anorthotic device.
 10. A prosthetic device being movable about a jointlocation and comprising the system of claim
 1. 11. The prosthetic deviceof claim 10, wherein the comparison module is further configured togenerate a control signal for adjusting the prosthetic device.
 12. Theprosthetic device of claim 11, further comprising an actuator configuredto control movement of the prosthetic device according to the controlsignal.
 13. The prosthetic device of claim 12, wherein the jointlocation is an ankle-joint location.
 14. The system of claim 8, whereinthe at least one accelerometer is attached to the artificial limb. 15.The system of claim 1, wherein the limb-motion events comprise toe-offand heel-strike events.